package com.xuecheng.api.course;

import com.xuecheng.framework.domain.course.*;
import com.xuecheng.framework.domain.course.ext.CategoryNode;
import com.xuecheng.framework.domain.course.ext.CourseInfo;
import com.xuecheng.framework.domain.course.ext.CourseView;
import com.xuecheng.framework.domain.course.ext.TeachplanNode;
import com.xuecheng.framework.domain.course.request.CourseListRequest;
import com.xuecheng.framework.domain.course.response.AddCourseResult;
import com.xuecheng.framework.domain.course.response.CoursePublishResult;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;

public interface CourseControllerApi {
    public TeachplanNode findTeachplanList(String courseId);

    public ResponseResult addTeachplan(Teachplan teachplan);

    public QueryResponseResult<CourseInfo> findCourseList(
            int page,
            int size,
            CourseListRequest courseListRequest
    );

    //新增课程
    public AddCourseResult addCourseBase(CourseBase courseBase);

    //查找课程根据课程id
    public CourseBase findCourseByCourseId(String courseId);

    //课程信息修改
    public ResponseResult updateCourse(String id, CourseBase courseBase);

    //查询课程营销
    public CourseMarket findCourseMarketById(String courseId);

    //更新课程营销
    public ResponseResult updateCourseMarket(String id, CourseMarket courseMarket);

    //上传图片文件后关联图片和文件信息
    public ResponseResult addCoursePic(String courseId, String pic);

    //课程详情图片查询
    public CoursePic findCoursepic(String courseId);

    //删除课程图片
    public ResponseResult deleteCoursePic(String courseId);

    //查询课程，包括课程基本介绍、课程图片、课程教学计划等
    public CourseView courseview(String id);

    //预览课程
    public CoursePublishResult preview(String id);

    //课程发布
    public CoursePublishResult publish(String id);

    //保存课程计划与媒资文件关联
    public ResponseResult savemedia(TeachplanMedia teachplanMedia);

}